// Extra drawing functions
//

#ifndef __DRAW_EX_H__
#define __DRAW_EX_H__

#ifdef __cplusplus
extern "C" {
#endif

#include "Canvas.h"

// NOTE: expand > 0 means ouside stoke
//		 expand < 0 means inside stoke
//		 expand = 0 means normal rectangle
void g_FillRectRaised(const TCanvas *canvas, int x1, int y1, int x2, int y2, int expand, int colors[]);

void g_FillRectGradient(const TCanvas *canvas, int x1, int y1, int x2, int y2, int dir, int colors[]);

#define STROKE_INSIDE	0
#define STROKE_CENTER	1
#define STROKE_OUTSIDE	2

void g_DrawRectThick(TCanvas *canvas, int x1, int y1, int x2, int y2, int color, int thick, int stroke);

void g_DrawLineThick(TCanvas *canvas, int x1, int y1, int x2, int y2, int color, int thick);

void g_DrawLineThickAA(TCanvas *canvas, int x1, int y1, int x2, int y2, int color, int thick);

void g_DrawPolylineAA(const TCanvas *canvas, const TPoint *points, int count, int color);

void g_DrawMonoImage(TCanvas *canvas, int x, int y, const TImage* image, int fg, int bg);

void g_DrawRectRound(TCanvas* pCanvas, int left, int top, int right, int bottom, int thick, int clr);
   
#ifdef __cplusplus
}
#endif

#endif  // __DRAW_EX_H__
